/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package simulation2;

import java.util.HashMap;
import java.util.Map;
import javax.print.attribute.HashAttributeSet;

/**
 * 
 * @author kb191394
 */
public class Joueur {
    
    public static final int VALEUR_INITIALE = 21;
    
    private String nom;
    private int valeur;
    private boolean eliminated;
    private Map<Partie, Integer> victoiresParPartie;
    
    private int nombreToursJoue;
    
    public Joueur(String nom) {
        this.nom = nom;
        this.valeur = VALEUR_INITIALE;
        this.victoiresParPartie = new HashMap<Partie, Integer>();
        this.nombreToursJoue = 0;
    }

    public String getNom() {
        return nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }

    public int getValeur() {
        return valeur;
    }

    public void setValeur(int valeur) {
        this.valeur = valeur;
    }
    
    public void incValeur(int valeur) {
        this.valeur += valeur;
    }

    public void setEliminated(boolean eliminated) {
        this.eliminated = eliminated;
    }
    
    public boolean isEliminated() {
        if (eliminated)
            return true;
        if (valeur == 0)
            return true;
        
        return false;
    }
    
    public int getPoints(Partie partie) {
        if (isEliminated())
            return 0;
        
       return (nombreVictoires(partie) * 100) + getValeur();
    }
    
    public void ajouterVictoire(Partie partie) {
        Integer compte = victoiresParPartie.get(partie);
        if (compte == null)
            compte = new Integer(0);
        
        compte++;
        
        victoiresParPartie.put(partie, compte);
    }
    
    public int nombreVictoires(Partie partie) {
        Integer compte = victoiresParPartie.get(partie);
        if (compte == null)
            return 0;
        
        return compte.intValue();
    }

    public int getNombreToursJoue() {
        return nombreToursJoue;
    }
    
    public void incNombreToursJoue() {
        nombreToursJoue++;
    }
    
    public int getTotalVictoires()
    {
        int totalVictoires = 0;
        for( int victoires : victoiresParPartie.values())
        {
            totalVictoires+=victoires;
        }
        return totalVictoires;
    }
    
    @Override
    public String toString() {
        return nom + " (valeur=" + valeur + ')';
    }
    
}
